/**
 * Created by L.jp
 * Description:
 * User: 86189
 * Date: 2021-10-17
 * Time: 17:15
 */
public class Array {
    public boolean canThreePartsEqualSum(int[] arr) {
        int sum = 0;
        for(int i:  arr){
            sum += i;
        }
        if(sum%3 != 0){
            // 总和不是3的倍数，直接返回false
            return false;
        }
        int s = 0;
        int flag = 0;
        for(int i: arr){
            s += i;//i指的是每个元素不是下标
            //让s去累加数组arr的每个元素，累加过程中s有可能多次等于sum/3;只要有一次就让flag++;flag最小是3
            if(s==sum/3){
                flag++;
                s = 0;//每加完一个部分把s置为0,再重新计算s
            }
        }
        // flag不一定等于3，例如[1,-1,1,-1,1,-1,1,-1]
        return flag>=3 ;
    }
}
